package com.example.dto;

import com.example.model.dto.BaseDateDTO;
import com.example.validator.group.AddGroup;
import com.example.validator.group.UpdateGroup;
import jakarta.validation.constraints.*;
import io.swagger.v3.oas.annotations.media.Schema;

import java.io.Serializable;

import lombok.Data;

import java.math.BigDecimal;

/**
 * SKU表
 *
 * @author yyyyjinying 1020066395@qq.com
 * @since 1.0-SNAPSHOT 2025-04-29
 */
@Data
@Schema(description = "SKU表")
public class SkusDTO extends BaseDateDTO implements Serializable {
    private static final long serialVersionUID = 1L;
    @Null(message = "{id.null}", groups = AddGroup.class)
    @NotNull(message = "{id.require}", groups = UpdateGroup.class)
    @Schema(description = "SKU ID")
    private Long skuId;
    @Schema(description = "关联的菜品ID")
    private Long dishId;
    @Schema(description = "口味")
    private String flavor;
    @Schema(description = "规格（JSON格式）")
    private Object specification;
    @Schema(description = "库存数量")
    private Integer stockQuantity;
    @Schema(description = "库存预警阈值")
    private Integer stockThreshold;
    @Schema(description = "售价")
    private BigDecimal price;
    @Schema(description = "成本价")
    private BigDecimal cost;
    @Schema(description = "SKU图片URL（如有不同）")
    private String imageUrl;
    @Schema(description = "SKU状态")
    private Object status;
    @Schema(description = "审批状态")
    private Object approvalStatus;
    @Schema(description = "促销活动信息（JSON格式）")
    private Object promotionInfo;
    @Schema(description = "版本号")
    private Integer version;
    @Schema(description = "供应商ID")
    private Long supplierId;
    @Schema(description = "是否已删除")
    private Integer isDelete;

}